package com.huilian.iotbox.admin.wap.service;

import com.huilian.iotbox.data.common.ServerResponse;
import com.huilian.iotbox.data.dto.CommodityDto;
import com.huilian.iotbox.data.po.Commodity;
import com.huilian.iotbox.data.vo.CommodityInfoCommonVo;
import com.huilian.iotbox.data.vo.CommodityVo;

import java.util.List;

public interface CommodityService {
    //查询币套餐
    List<CommodityVo> findByStoreIdAndUserIdCommodity(CommodityDto commodityDto);
    //查询余额套餐
    List<CommodityVo> findByStoreIdAndUserIdCommodityV2(CommodityDto commodityDto);

    ServerResponse deleteBalancePackage(CommodityDto commodityDto);
    ServerResponse editPackage(CommodityDto commodityDto);

    ServerResponse findByStatus(CommodityDto commodityDto);

    ServerResponse findMerchantStore(CommodityDto commodityDto);

    ServerResponse saveProduct(CommodityDto commodityDto);

    ServerResponse findByGroup(CommodityDto commodityDto);

    ServerResponse findByIdCommodityVo(CommodityDto commodityDto);

    int insert(Commodity commodity);

    long calculateExpirationDays(CommodityDto commodityDto);

    List<CommodityVo> findAllCommodity(CommodityDto commodityDto);

    Commodity findOneCommodityByIdAndPermission(CommodityDto commodityCondition);

    ServerResponse findAllCommodityPage(CommodityDto commodityDto);

    ServerResponse editVendingMachineGoods(CommodityDto commodityDto);

    ServerResponse findCommodityById(CommodityDto commodityDto);

    List<CommodityInfoCommonVo> findCommodityByBarCode(String  barCode);
    /**
     * 根据条形码和userId查询商品信息
     */
    List<CommodityInfoCommonVo> findCommodityByBarCodeAndUserId(String barCode,Integer userId);

    ServerResponse findCommodityList(CommodityDto commodityDto);

    /**
     * 下架商品
     */
    void commodityOffTheShelves(CommodityDto commodityDto);


    CommodityVo queryById(Long id);
}
